////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2012 Kentaro Sekimoto  All rights reserved.
////////////////////////////////////////////////////////////////////////////

#ifndef FM4_GPIO_MB9BF568R_H_
#define FM4_GPIO_MB9BF568R_H_

#include <tinyhal.h>
#include "FM4_GPIO.h"

#if 0
const UINT8 c_GPIO_Attributes[FM4_GPIO_MAX_PINS] =
{
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P00
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P01
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P02
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P03
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P04
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P05
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P06
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P07
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P08
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P09
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P0A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P0B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P0C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P0D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P0E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P0F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P10
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P11
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P12
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P13
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P14
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P15
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P16
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P17
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P18
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P19
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P1A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P1B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P1C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P1D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P1E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P1F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P20
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P21
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P22
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P23
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P24
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P25
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P26
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P27
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P28
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P29
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P2A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P2B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P2C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P2D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P2E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P2F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P30
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P31
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P32
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P33
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P34
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P35
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P36
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P37
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P38
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P39
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P3A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P3B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P3C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P3D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P3E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P3F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P40
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P41
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P42
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P43
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P44
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P45
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P46
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P47
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P48
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P49
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P4A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P4B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P4C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P4D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P4E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P4F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P50
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P51
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P52
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P53
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P54
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P55
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P56
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P57
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P58
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P59
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P5A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P5B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P5C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P5D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P5E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P5F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P60
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P61
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P62
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P63
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P64
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P65
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P66
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P67
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P68
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P69
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P6A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P6B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P6C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P6D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P6E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P6F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P70
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P71
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P72
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P73
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P74
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P75
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P76
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P77
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P78
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P79
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P7A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P7B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P7C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P7D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P7E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P7F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P80
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P81
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P82
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P83
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P84
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P85
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P86
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P87
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P88
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P89
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P8A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P8B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P8C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P8D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P8E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P8F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P90
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P91
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P92
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P93
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P94
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P95
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P96
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P97
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P98
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P99
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P9A
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P9B
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P9C
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P9D
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P9E
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // P9F

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA0
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA1
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA2
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA3
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA4
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA5
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA6
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA7
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA8
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PA9
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PAA
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PAB
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PAC
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PAD
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PAE
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PAF

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB0
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB1
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB2
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB3
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB4
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB5
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB6
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB7
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB8
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PB9
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PBA
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PBB
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PBC
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PBD
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PBE
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PBF

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC0
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC1
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC2
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC3
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC4
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC5
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC6
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC7
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC8
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PC9
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PCA
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PCB
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PCC
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PCD
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PCE
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PCF

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD0
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD1
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD2
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD3
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD4
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD5
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD6
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD7
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD8
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PD9
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PDA
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PDB
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PDC
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PDD
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PDE
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PDF

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE0
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE1
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE2
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE3
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE4
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE5
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE6
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE7
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE8
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PE9
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PEA
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PEB
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PEC
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PED
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PEE
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PEF

        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF0
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF1
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF2
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF3
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF4
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF5
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF6
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF7
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF8
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PF9
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PFA
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PFB
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PFC
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PFD
        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT,    // PFE
//        GPIO_ATTRIBUTE_INPUT | GPIO_ATTRIBUTE_OUTPUT    // PFF
};
#endif

#ifdef USE_FM4_GPIO_EXT_INT
UINT8 m_GPIO_IrqToPin[FM4_IRQ_MAX];

struct FM4_INT_PIN  c_GPIO_ToPin[] = {
        {P50, P05, PD2},    // INT00
        {P51, P06, P24},    // INT01
        {P52, P11, P27},    // INT02
        {PA4, P14, P30},    // INT03
        {P33, P17, P31},    // INT04
        {P20, P1A, P32},    // INT05
        {PF3, P21, P4E},    // INT06
        {PF4, P75, P53},    // INT07
        {PF5, P35, P56},    // INT08
        {P28, P36, P59},    // INT09

        {P7B, P37, PA5},    // INT10
        {P7C, P38, P76},    // INT11
        {P7D, P40, P77},    // INT12
        {PF0, P41, P71},    // INT13
        {PF1, P48, P72},    // INT14
        {PF2, P60, P73},    // INT15
        {PB0, P57, PPP},    // INT16
        {PB1, P58, PPP},    // INT17
        {PB2, P5A, PPP},    // INT18
        {PB3, P5B, PPP},    // INT19

        {PB4, P16, PPP},    // INT20
        {PB5, P18, PPP},    // INT21
        {PB6, P19, PPP},    // INT22
        {PB7, P79, PPP},    // INT23
        {P7E, P7A, PPP},    // INT24
        {P7F, P1B, PPP},    // INT25
        {P94, P1C, PPP},    // INT26
        {P95, P1D, PPP},    // INT27
        {P5C, P1E, PPP},    // INT28
        {P5D, P1F, PPP},    // INT29

        {P90, PD0, PPP},    // INT30
        {P91, PD1, PPP}     // INT31
};

UINT8 c_GPIO_IntNo[] = {
        NOINT,      // P00
        NOINT,      // P01
        NOINT,      // P02
        NOINT,      // P03
        NOINT,      // P04
        INTNO(0,1), // P05
        INTNO(1,1), // P06
        NOINT,      // P07
        NOINT,      // P08
        NOINT,      // P09
        NOINT,      // P0A
        NOINT,      // P0B
        NOINT,      // P0C
        NOINT,      // P0D
        NOINT,      // P0E
        NOINT,      // P0F

        NOINT,      // P10
        INTNO(2,1), // P11
        NOINT,      // P12
        NOINT,      // P13
        INTNO(3,1), // P14
        NOINT,      // P15
        INTNO(20,1),// P16
        INTNO(4,1), // P17
        INTNO(21,1),// P18
        INTNO(22,1),// P19
        INTNO(5,1), // P1A
        INTNO(25,1),// P1B
        INTNO(26,1),// P1C
        INTNO(27,1),// P1D
        INTNO(28,1),// P1E
        INTNO(29,1),// P1F

        INTNO(5,0), // P20
        INTNO(6,1), // P21
        NOINT,      // P22
        NOINT,      // P23
        INTNO(1,2), // P24
        NOINT,      // P25
        NOINT,      // P26
        INTNO(2,2), // P27
        INTNO(9,0), // P28
        NOINT,      // P29
        NOINT,      // P2A
        NOINT,      // P2B
        NOINT,      // P2C
        NOINT,      // P2D
        NOINT,      // P2E
        NOINT,      // P2F

        INTNO(3,2), // P30
        INTNO(4,2), // P31
        INTNO(5,2), // P32
        INTNO(4,0), // P33
        NOINT,      // P34
        INTNO(8,1), // P35
        INTNO(9,1), // P36
        INTNO(10,1),// P37
        INTNO(11,1),// P38
        NOINT,      // P39
        NOINT,      // P3A
        NOINT,      // P3B
        NOINT,      // P3C
        NOINT,      // P3D
        NOINT,      // P3E
        NOINT,      // P3F

        INTNO(12,1),// P40
        INTNO(13,1),// P41
        NOINT,      // P42
        NOINT,      // P43
        NOINT,      // P44
        NOINT,      // P45
        NOINT,      // P46
        NOINT,      // P47
        INTNO(14,1),// P48
        NOINT,      // P49
        NOINT,      // P4A
        NOINT,      // P4B
        NOINT,      // P4C
        NOINT,      // P4D
        NOINT,      // P4E
        NOINT,      // P4F

        INTNO(0,0), // P50
        INTNO(1,0), // P51
        INTNO(2,0), // P52
        INTNO(7,2), // P53
        NOINT,      // P54
        NOINT,      // P55
        INTNO(8,2), // P56
        INTNO(16,1),// P57
        INTNO(17,1),// P58
        INTNO(9,2), // P59
        INTNO(18,1),// P5A
        INTNO(19,1),// P5B
        INTNO(28,0),// P5C
        INTNO(29,0),// P5D
        NOINT,      // P5E
        NOINT,      // P5F

        INTNO(15,1),// P60
        NOINT,      // P61
        NOINT,      // P62
        NOINT,      // P63
        NOINT,      // P64
        NOINT,      // P65
        NOINT,      // P66
        NOINT,      // P67
        NOINT,      // P68
        NOINT,      // P69
        NOINT,      // P6A
        NOINT,      // P6B
        NOINT,      // P6C
        NOINT,      // P6D
        NOINT,      // P6E
        NOINT,      // P6F

        NOINT,      // P70
        INTNO(13,2),// P71
        INTNO(14,2),// P72
        INTNO(15,2),// P73
        NOINT,      // P74
        INTNO(7,1), // P75
        INTNO(11,2),// P76
        INTNO(12,2),// P77
        NOINT,      // P78
        INTNO(23,1),// P79
        INTNO(24,1),// P7A
        INTNO(10,0),// P7B
        INTNO(11,0),// P7C
        INTNO(12,0),// P7D
        INTNO(24,0),// P7E
        INTNO(25,0),// P7F

        NOINT,      // P80
        NOINT,      // P81
        NOINT,      // P82
        NOINT,      // P83
        NOINT,      // P84
        NOINT,      // P85
        NOINT,      // P86
        NOINT,      // P87
        NOINT,      // P88
        NOINT,      // P89
        NOINT,      // P8A
        NOINT,      // P8B
        NOINT,      // P8C
        NOINT,      // P8D
        NOINT,      // P8E
        NOINT,      // P8F

        INTNO(30,0),// P90
        INTNO(31,0),// P91
        NOINT,      // P92
        NOINT,      // P93
        INTNO(26,0),// P94
        INTNO(27,0),// P95
        NOINT,      // P96
        NOINT,      // P97
        NOINT,      // P98
        NOINT,      // P99
        NOINT,      // P9A
        NOINT,      // P9B
        NOINT,      // P9C
        NOINT,      // P9D
        NOINT,      // P9E
        NOINT,      // P9F

        NOINT,      // PA0
        NOINT,      // PA1
        NOINT,      // PA2
        NOINT,      // PA3
        INTNO(3,0), // PA4
        INTNO(10,2),// PA5
        NOINT,      // PA6
        NOINT,      // PA7
        NOINT,      // PA8
        NOINT,      // PA9
        NOINT,      // PAA
        NOINT,      // PAB
        NOINT,      // PAC
        NOINT,      // PAD
        NOINT,      // PAE
        NOINT,      // PAF

        INTNO(16,0),// PB0
        INTNO(17,0),// PB1
        INTNO(18,0),// PB2
        INTNO(19,0),// PB3
        INTNO(20,0),// PB4
        INTNO(21,0),// PB5
        INTNO(22,0),// PB6
        INTNO(23,0),// PB7
        NOINT,      // PB8
        NOINT,      // PB9
        NOINT,      // PBA
        NOINT,      // PBB
        NOINT,      // PBC
        NOINT,      // PBD
        NOINT,      // PBE
        NOINT,      // PBF

        NOINT,      // PC0
        NOINT,      // PC1
        NOINT,      // PC2
        NOINT,      // PC3
        NOINT,      // PC4
        NOINT,      // PC5
        NOINT,      // PC6
        NOINT,      // PC7
        NOINT,      // PC8
        NOINT,      // PC9
        NOINT,      // PCA
        NOINT,      // PCB
        NOINT,      // PCC
        NOINT,      // PCD
        NOINT,      // PCE
        NOINT,      // PCF

        INTNO(30,1),// PD0
        INTNO(31,1),// PD1
        INTNO(0,2), // PD2
        NOINT,      // PD3
        NOINT,      // PD4
        NOINT,      // PD5
        NOINT,      // PD6
        NOINT,      // PD7
        NOINT,      // PD8
        NOINT,      // PD9
        NOINT,      // PDA
        NOINT,      // PDB
        NOINT,      // PDC
        NOINT,      // PDD
        NOINT,      // PDE
        NOINT,      // PDF

        NOINT,      // PE0
        NOINT,      // PE1
        NOINT,      // PE2
        NOINT,      // PE3
        NOINT,      // PE4
        NOINT,      // PE5
        NOINT,      // PE6
        NOINT,      // PE7
        NOINT,      // PE8
        NOINT,      // PE9
        NOINT,      // PEA
        NOINT,      // PEB
        NOINT,      // PEC
        NOINT,      // PED
        NOINT,      // PEE
        NOINT,      // PEF

        INTNO(13,0),// PF0
        INTNO(14,0),// PF1
        INTNO(15,0),// PF2
        INTNO(16,0),// PF3
        INTNO(7,0), // PF4
        INTNO(8,0), // PF6
        NOINT,      // PF7
        NOINT,      // PF8
        NOINT,      // PF9
        NOINT,      // PFA
        NOINT,      // PFB
        NOINT,      // PFC
        NOINT,      // PFD
        NOINT,      // PFE
        NOINT       // PFF
};
#endif

#endif /* FM4_GPIO_MB9BF568R_H_ */
